package com.cloud.async.business.core;

import com.cloud.async.business.body.FutureResult;

/**
 * 异步任务生命周期管理接口，负责任务的存活检查、释放和结果获取。
 */
public abstract  class AsyncTaskLifecycle {
    /**
     * 检查任务是否存在/存活
     * @param taskId 任务ID
     * @return 如果任务存在且未释放，返回 true；否则返回 false
     */
    protected abstract boolean isTaskActive(String taskId);

    /**
     * 释放任务（清理资源或标记为完成）
     * @param taskId 任务ID
     */
    protected abstract void releaseTask(String taskId);

    /**
     * 获取任务的 Future 结果（非阻塞）
     * @param taskId 任务ID
     * @return 包含异步结果的 Future 对象
     */
    protected abstract FutureResult getTaskResult(String taskId);

    /**
     * 注册新任务
     * @param taskId 任务ID
     * @param result 未来结果
     */
    protected  void registerTask(String taskId, FutureResult result) {

    }
}